import { dateTimeFormatMillisecond as format } from "../util/date-time-format.js";

const isEnableDebug = true;
const isEnableInfo = true;
const isEnableWarn = true;



export default class Log{
    
    #target = "";
    constructor(target) {
        this.#target = target;
    }

        /**
     * 打印debug日志
     * @param msg 打印日志的说明
     * @param data 打印日志的附加数据
     */
        debug(msg, ...data) {
            isEnableDebug &&
                // eslint-disable-next-line no-console
                console.debug("%c" + format(new Date()) + " [DEBUG] " + this.#target, "color: #20B2AA", msg, ...data);
        }

            /**
     * 打印info日志
     * @param msg 打印日志的说明
     * @param data 打印日志的附加数据
     */
    info(msg, ...data) {
        isEnableInfo &&
            // eslint-disable-next-line no-console
            console.debug("%c" + format(new Date()) + " [INFO] " + this.#target, "color: #228B22", msg, ...data);
    }

        /**
    * 打印warn日志
    * @param msg 打印日志的说明
    * @param data 打印日志的附加数据
    */
        warn(msg, ...data) {
            isEnableWarn &&
                // eslint-disable-next-line no-console
                console.warn(format(new Date()), "[WARN]", this.#target, msg, ...data);
        }

}